package temperature;

import be.kuleuven.cs.som.annotate.*;

/**
 * An enumeration introducing different temperature scales.
 * In its current form, the class only supports the Celsius, Kelvin 
 * and Fahrenheit scale.
 * 
 * @author Tom Jacobs & Ewoud De Moor
 * @version 3.0
 */
@Value
public enum TemperatureScale {
	CELSIUS("\u00B0C"), KELVIN("K"), FAHRENHEIT("\u00B0F");
	
	/**
	 * Initialize this scale with the given symbol
	 * 
	 * @param 	symbol
	 * 			The symbol for this new scale
	 * @Post	The symbol for this new scale is equal to the given symbol.
	 * 			| new.getSymbol() == symbol
	 */
	@Raw
	private TemperatureScale(String symbol) {
		this.symbol = symbol;
	}
	
	/**
	 * Return the symbol for this scale.
	 */
	@Basic @Raw @Immutable
	public String getSymbol() {
		return this.symbol;
	}
	
	/**
	 * Variable storing the symbol for this scale.
	 */
	private final String symbol;
	
}
